package cn.zjjd.homeworkserver.config;


import cn.zjjd.homeworkserver.interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
    /**
     * 拦截器   （执行顺序preHandle-->Controller-->postHandle-->afterCompletion）
     * addPathPatterns(""),表示拦截的路径，“/**”表示对所有的请求都进行拦截
     * excludePathPatterns("")，排除拦截的路径
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/**");
//                .excludePathPatterns("/css/**")
//                .excludePathPatterns("/img/**")
//                .excludePathPatterns("/js/**")
//                .excludePathPatterns("/mp4/**")
//                .excludePathPatterns("/login")
//                .excludePathPatterns("/register")
//                .excludePathPatterns("/login.html")
//                .excludePathPatterns("/register.html");
    }

    /**
     * 配置CORS
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("*")                        //表示允许的请求头，默认允许所有的请求头信息
                .allowedMethods("*")                        //允许的请求方法，默认是GET、POST和HEAD。*表示支持所有的请求方法
                .maxAge(1800)                               //表示探测请求的有效期
                .allowedOriginPatterns("*")
                .allowCredentials(true);    //允许传cookie

    }
}